home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / libblas / hemm.z / hemm
Encoding:
Text File  |  1998-10-30  |  15.6 KB  |  331 lines

  1.  
  2.  
  3.  
  4. ____HHHHEEEEMMMMMMMM((((3333FFFF))))                                                            ____HHHHEEEEMMMMMMMM((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      zhemm, chemm - BLAS level three   Hermitian Matrix Product
  10.  
  11.  
  12. FFFFOOOORRRRTTTTRRRRAAAANNNN 77777777 SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee zzzzhhhheeeemmmmmmmm(((( ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,mmmm,,,,nnnn,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  14.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        ssssiiiiddddeeee,,,,uuuupppplllloooo
  15.            iiiinnnntttteeeeggggeeeerrrr            mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
  16.            ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  17.            ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb((((llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
  18.  
  19.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee cccchhhheeeemmmmmmmm(((( ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,mmmm,,,,nnnn,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  20.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        ssssiiiiddddeeee,,,,uuuupppplllloooo
  21.            iiiinnnntttteeeeggggeeeerrrr            mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
  22.            ccccoooommmmpppplllleeeexxxx            aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  23.            ccccoooommmmpppplllleeeexxxx            aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb((((llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
  24.  
  25.  
  26. CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  27.      vvvvooooiiiidddd zzzzhhhheeeemmmmmmmm(((( ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,mmmm,,,,nnnn,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  28.            OOOOppppeeeerrrraaaattttiiiioooonnnnSSSSiiiiddddeeee         ssssiiiiddddeeee;;;;
  29.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee        uuuupppplllloooo;;;;
  30.            IIIInnnntttteeeeggggeeeerrrr               mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
  31.            ZZZZoooommmmpppplllleeeexxxx               ((((****aaaa))))[[[[llllddddaaaa****kkkkaaaa]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****cccc))))[[[[llllddddaaaa****kkkkbbbb]]]];;;;
  32.  
  33.      vvvvooooiiiidddd cccchhhheeeemmmmmmmm(((( ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,mmmm,,,,nnnn,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  34.            OOOOppppeeeerrrraaaattttiiiioooonnnnSSSSiiiiddddeeee         ssssiiiiddddeeee;;;;
  35.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee        uuuupppplllloooo;;;;
  36.            IIIInnnntttteeeeggggeeeerrrr               mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
  37.            CCCCoooommmmpppplllleeeexxxx               ((((****aaaa))))[[[[llllddddaaaa****kkkkaaaa]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****cccc))))[[[[llllddddaaaa****kkkkbbbb]]]];;;;
  38.  
  39.  
  40. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  41.      zzzzhhhheeeemmmmmmmm and cccchhhheeeemmmmmmmm perform one of the matrix-matrix operations
  42.  
  43.                C := alpha*A*B + beta*C, or
  44.  
  45.                C := alpha*B*A + beta*C,
  46.  
  47.      where alpha and beta are scalars, A is an hermitian matrix and B and C
  48.      are m by n matrices.
  49.  
  50.  
  51. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  52.      ssssiiiiddddeeee    specifies whether the hermitian matrix A appears on the left or
  53.              right in the operation as follows:
  54.  
  55.  
  56.                   FFFFOOOORRRRTTTTRRRRAAAANNNN
  57.                   side = 'L' or 'l'        C := alpha*A*B + beta*C
  58.                   side = 'R' or 'r'        C := alpha*B*A + beta*C
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ____HHHHEEEEMMMMMMMM((((3333FFFF))))                                                            ____HHHHEEEEMMMMMMMM((((3333FFFF))))
  71.  
  72.  
  73.  
  74.                  CCCC
  75.                   side = LeftSide          C := alpha*A*B + beta*C
  76.                   side = RightSide         C := alpha*B*A + beta*C
  77.  
  78.              Unchanged on exit.
  79.  
  80.      uuuupppplllloooo    On  entry, uuuupppplllloooo specifies whether the upper or lower triangular
  81.              part of the hermitian matrix A is to be referenced as follows:
  82.  
  83.  
  84.                   FFFFOOOORRRRTTTTRRRRAAAANNNN
  85.                   uplo = 'U' or 'u'   Only the upper triangular part of the
  86.                                       hermitian matrix is to be referenced.
  87.                   uplo = 'L' or 'l'   Only the lower triangular part of the
  88.                                       hermitian matrix is to be referenced.
  89.  
  90.                   CCCC
  91.                   uplo = UpperTriangle     Only the upper triangular part of
  92.                                            the matrix is to be referenced.
  93.                   uplo = LowerTriangle     Only the lower triangular part of
  94.                                            the matrix is to be referenced.
  95.  
  96.              Unchanged on exit.
  97.  
  98.      mmmm       On entry, mmmm specifies the number of rows of the matrix C. mmmm must
  99.              be at least zero.
  100.              Unchanged on exit.
  101.  
  102.      nnnn       On entry, nnnn specifies the number of columns of the matrix C. nnnn
  103.              must be at least zero.
  104.              Unchanged on exit.
  105.  
  106.      aaaallllpppphhhhaaaa   On entry, aaaallllpppphhhhaaaa specifies the scalar alpha.
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ____HHHHEEEEMMMMMMMM((((3333FFFF))))                                                            ____HHHHEEEEMMMMMMMM((((3333FFFF))))
  137.  
  138.  
  139.  
  140.              Unchanged on exit.
  141.  
  142.      aaaa       An array containing the matrix A.
  143.  
  144.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  145.              Array of dimension (lda, ka).
  146.  
  147.              CCCC
  148.              A pointer to an array of size lda*ka.
  149.              See note below about array storage convention for C.
  150.  
  151.              kkkkaaaa is mmmm when side = 'L' or 'l' or LeftSide and is nnnn when side =
  152.              'R' or 'r' or RightSide.
  153.  
  154.              Before entry with uuuupppplllloooo ==== ''''LLLL'''' oooorrrr ''''llll'''' oooorrrr LLLLoooowwwweeeerrrrTTTTrrrriiiiaaaannnngggglllleeee , the
  155.              elements of the array aaaa corresponding to the m by m matrix A must
  156.              contain the hermitian matrix, such that when uuuupppplllloooo ==== ''''UUUU'''' oooorrrr ''''uuuu'''' oooorrrr
  157.              UUUUppppppppeeeerrrrTTTTrrrriiiiaaaannnngggglllleeee , the elements of the array aaaa corresponding to the
  158.              leading m by m upper triangular part of the matrix A must contain
  159.              the upper triangular part of the hermitian matrix and the
  160.              elements corresponding to the strictly lower triangular part of A
  161.              are not referenced. When uuuupppplllloooo ==== ''''LLLL'''' oooorrrr ''''llll'''' oooorrrr LLLLoooowwwweeeerrrrTTTTrrrriiiiaaaannnngggglllleeee , the
  162.              elements of the array aaaa corresponding to the leading m by m lower
  163.              triangular part of the matrix A must contain the lower triangular
  164.              part of the hermitian matrix and the elements corresponding to
  165.              the strictly upper triangular part of A are not referenced.
  166.  
  167.              Before entry with ssssiiiiddddeeee ==== ''''RRRR'''' oooorrrr ''''rrrr'''' oooorrrr RRRRiiiigggghhhhttttSSSSiiiiddddeeee , the elements
  168.              of the array aaaa corresponding to the n by n matrix A must contain
  169.              the hermitian matrix, such that when uuuupppplllloooo ==== ''''UUUU'''' oooorrrr ''''uuuu'''' oooorrrr
  170.              UUUUppppppppeeeerrrrTTTTrrrriiiiaaaannnngggglllleeee , the elements of the array aaaa corresponding to the
  171.              leading n by n upper triangular part of the matrix A must contain
  172.              the upper triangular part of the hermitian matrix and the
  173.              elements corresponding to the strictly lower triangular part of A
  174.              are not referenced. When uuuupppplllloooo ==== ''''LLLL'''' oooorrrr ''''llll'''' oooorrrr LLLLoooowwwweeeerrrrTTTTrrrriiiiaaaannnngggglllleeee , the
  175.              elements of the array aaaa corresponding to the leading n by n lower
  176.              triangular part of the matrix A must contain the lower triangular
  177.              part of the hermitian matrix and the elements corresponding to
  178.              the strictly upper triangular part of A are not referenced.
  179.  
  180.              Note that the imaginary parts corresponding to the diagonal
  181.              elements need not be set, they are assumed to be zero.
  182.  
  183.              Unchanged on exit.
  184.  
  185.      llllddddaaaa     On entry, llllddddaaaa specifies the first dimension of A as declared in
  186.              the calling (sub) program. When side = 'L' or 'l' or LeftSide,
  187.              then lda must be at least max( 1, m ). When side = 'R' or 'r' or
  188.              RightSide, then lda must be at least max( 1, n ).
  189.              Unchanged on exit.
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. ____HHHHEEEEMMMMMMMM((((3333FFFF))))                                                            ____HHHHEEEEMMMMMMMM((((3333FFFF))))
  203.  
  204.  
  205.  
  206.      BBBB       An array containing the matrix B.
  207.  
  208.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  209.              An array of dimension ( ldb, n ).
  210.  
  211.              CCCC
  212.              A pointer to an array of size ldb*n.
  213.              See note below about array storage convention for C.
  214.  
  215.              Before entry, the elements of bbbb that correspond to the leading m
  216.              by n part of the matrix B should contain the elements
  217.              corresponding to the m by n matrix B.
  218.  
  219.              Unchanged on exit.
  220.  
  221.      llllddddbbbb     On entry, llllddddbbbb specifies the first dimension of B as declared in
  222.              the calling (sub)program. ldb
  223.               must be at least max( 1, m ).
  224.              Unchanged on exit.
  225.  
  226.      bbbbeeeettttaaaa    On entry, bbbbeeeettttaaaa specifies the scalar beta.  When bbbbeeeettttaaaa is supplied
  227.              as zero then cccc need not be set on input.
  228.              Unchanged on exit.
  229.  
  230.      cccc       An array containing the matrix C.
  231.  
  232.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  233.              An array of dimension ( ldc, n ).
  234.  
  235.              CCCC
  236.              A pointer to an array of size ldc*n.
  237.              See note below about array storage convention for C.
  238.  
  239.              Before entry, the leading m by n part of the array cccc must contain
  240.              the matrix C, except when beta is zero, in which case cccc need not
  241.              be set on entry.
  242.  
  243.              On exit, the array cccc is overwritten by the m by n updated matrix.
  244.  
  245.      llllddddcccc     On entry, llllddddcccc specifies the first dimension of cccc as declared in
  246.              the calling (sub) program. llllddddcccc must be at least max( 1, m ).
  247.              Unchanged on exit.
  248.  
  249.  
  250. CCCC AAAARRRRRRRRAAAAYYYY SSSSTTTTOOOORRRRAAAAGGGGEEEE CCCCOOOONNNNVVVVEEEENNNNTTTTIIIIOOOONNNN
  251.        The matrices  are assumed  to be stored in a  oooonnnneeee ddddiiiimmmmeeeennnnssssiiiioooonnnnaaaallll CCCC aaaarrrrrrrraaaayyyy
  252.        in an analogous fashion as a Fortran array (column major). Therefore,
  253.        the element  A(i+1,j)  of matrix A  is stored  immediately  after the
  254.        element  A(i,j), while  A(i,j+1) is lda  elements apart from  A(i,j).
  255.        The element A(i,j) of the matrix can be accessed directly by reference
  256.        to  a[ (j-1)*lda + (i-1) ].
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. ____HHHHEEEEMMMMMMMM((((3333FFFF))))                                                            ____HHHHEEEEMMMMMMMM((((3333FFFF))))
  269.  
  270.  
  271.  
  272. AAAAUUUUTTTTHHHHOOOORRRRSSSS
  273.           Jack Dongarra, Argonne National Laboratory.
  274.           Iain Duff, AERE Harwell.
  275.           Jeremy Du Croz, Numerical Algorithms Group Ltd.
  276.           Sven Hammarling, Numerical Algorithms Group Ltd.
  277.  
  278.  
  279. TTTTUUUUNNNNIIIINNNNGGGG
  280.           Optimized and parallelized for SGI R3000, R4x00 and R8000 platforms.
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.